/*     */ package dm.jdbc.rowset;
/*     */ 
/*     */ import dm.jdbc.dbaccess.DBError;
/*     */ import dm.jdbc.driver.DmdbCallableStatement_bs;
/*     */ import dm.jdbc.driver.DmdbConnection_bs;
/*     */ import dm.jdbc.driver.DmdbResultSet_bs;
/*     */ import java.io.InputStream;
/*     */ import java.io.Reader;
/*     */ import java.sql.Date;
/*     */ import java.sql.SQLException;
/*     */ import java.sql.Time;
/*     */ import java.sql.Timestamp;
/*     */ import java.util.Calendar;
/*     */ import java.util.Vector;
/*     */ 
/*     */ 
/*     */ public class DmdbCachedRowSetReaderInner
/*     */ {
/*     */   DmdbCallableStatement_bs prepareStatement(DmdbConnection_bs conn, DmdbCachedRowSet_bs caller)
/*     */     throws SQLException
/*     */   {
/*  22 */     String command = caller.getCommand();
/*  23 */     if ((command == null) || (command.equalsIgnoreCase(""))) {
/*  24 */       DBError.throwSQLException(20019);
/*     */     }
/*  26 */     DmdbCallableStatement_bs cstmt = (DmdbCallableStatement_bs)conn
/*  27 */       .prepareCall(command, caller.getType(), caller.getConcurrency());
/*  28 */     cstmt.setFetchSize(caller.getFetchSize());
/*  29 */     cstmt.setFetchDirection(caller.getFetchDirection());
/*  30 */     cstmt.setMaxFieldSize(caller.getMaxFieldSize());
/*  31 */     cstmt.setMaxRows(caller.getMaxRows());
/*  32 */     cstmt.setQueryTimeout(caller.getQueryTimeout());
/*  33 */     cstmt.setEscapeProcessing(caller.getEscapeProcessing());
/*     */     
/*  35 */     return cstmt;
/*     */   }
/*     */   
/*     */ 
/*     */   void setParams(DmdbCallableStatement_bs cstmt, Vector<DmdbParameter> params)
/*     */     throws SQLException
/*     */   {
/*  42 */     String pName = null;
/*  43 */     int pIndex = -1;
/*     */     
/*     */ 
/*  46 */     for (int i = 0; i < params.size(); i++) {
/*  47 */       DmdbParameter parameter = (DmdbParameter)params.elementAt(i);
/*  48 */       pName = parameter.getParamName();
/*  49 */       pIndex = parameter.getParamIndex();
/*  50 */       Object[] pInfos = parameter.getParams();
/*     */       
/*  52 */       if (1 == pInfos.length) {
/*  53 */         if (pName == null) {
/*  54 */           cstmt.setObject(pIndex, pInfos[0]);
/*     */         } else {
/*  56 */           cstmt.setObject(pName, pInfos[0]);
/*     */         }
/*     */       }
/*     */       else
/*     */       {
/*  61 */         if (2 == pInfos.length) {
/*  62 */           if (pInfos[0] == null) {
/*  63 */             if (pName == null) {
/*  64 */               cstmt.setNull(pIndex, ((Integer)pInfos[1]).intValue()); continue;
/*     */             }
/*  66 */             cstmt.setNull(pName, ((Integer)pInfos[1]).intValue());
/*  67 */             continue;
/*     */           }
/*     */           
/*  70 */           if ((pInfos[0] instanceof Date)) {
/*  71 */             if (pName == null) {
/*  72 */               cstmt.setDate(pIndex, (Date)pInfos[0], 
/*  73 */                 (Calendar)pInfos[1]);continue;
/*     */             }
/*  75 */             cstmt.setDate(pName, (Date)pInfos[0], 
/*  76 */               (Calendar)pInfos[1]);
/*  77 */             continue;
/*     */           }
/*     */           
/*  80 */           if ((pInfos[0] instanceof Time)) {
/*  81 */             if (pName == null) {
/*  82 */               cstmt.setTime(pIndex, (Time)pInfos[0], 
/*  83 */                 (Calendar)pInfos[1]);continue;
/*     */             }
/*  85 */             cstmt.setTime(pName, (Time)pInfos[0], 
/*  86 */               (Calendar)pInfos[1]);
/*  87 */             continue;
/*     */           }
/*     */           
/*  90 */           if ((pInfos[0] instanceof Timestamp)) {
/*  91 */             if (pName == null) {
/*  92 */               cstmt.setTimestamp(pIndex, (Timestamp)pInfos[0], 
/*  93 */                 (Calendar)pInfos[1]);continue;
/*     */             }
/*  95 */             cstmt.setTimestamp(pName, (Timestamp)pInfos[0], 
/*  96 */               (Calendar)pInfos[1]);
/*  97 */             continue;
/*     */           }
/*     */           
/* 100 */           if ((pInfos[0] instanceof InputStream)) {
/* 101 */             long length = 0L;
/* 102 */             if ((pInfos[1] instanceof Integer)) {
/* 103 */               length = ((Integer)pInfos[1]).intValue();
/* 104 */             } else if ((pInfos[1] instanceof Long))
/* 105 */               length = ((Long)pInfos[1]).longValue();
/* 106 */             if (parameter.isByObject()) {
/* 107 */               if (pName == null) {
/* 108 */                 cstmt.setObject(pIndex, pInfos[0], (int)length); continue;
/*     */               }
/* 110 */               cstmt.setObject(pName, pInfos[0], (int)length);
/* 111 */               continue; }
/* 112 */             if (pName == null) {
/* 113 */               cstmt.setAsciiStream(pIndex, 
/* 114 */                 (InputStream)pInfos[0], length);continue;
/*     */             }
/* 116 */             cstmt.setAsciiStream(pName, 
/* 117 */               (InputStream)pInfos[0], length);
/*     */             
/*     */ 
/* 120 */             continue;
/*     */           }
/*     */           
/* 123 */           if ((pInfos[0] instanceof Reader)) {
/* 124 */             long length = 0L;
/* 125 */             if ((pInfos[1] instanceof Integer)) {
/* 126 */               length = ((Integer)pInfos[1]).intValue();
/* 127 */             } else if ((pInfos[1] instanceof Long))
/* 128 */               length = ((Long)pInfos[1]).longValue();
/* 129 */             if (parameter.isByObject()) {
/* 130 */               if (pName == null) {
/* 131 */                 cstmt.setObject(pIndex, pInfos[0], (int)length); continue;
/*     */               }
/* 133 */               cstmt.setObject(pName, pInfos[0], (int)length);
/* 134 */               continue; }
/* 135 */             if (pName == null) {
/* 136 */               cstmt.setCharacterStream(pIndex, 
/* 137 */                 (Reader)pInfos[0], length);continue;
/*     */             }
/* 139 */             cstmt.setCharacterStream(pName, (Reader)pInfos[0], 
/* 140 */               length);
/*     */             
/*     */ 
/* 143 */             continue;
/*     */           }
/*     */           
/* 146 */           if ((pInfos[1] instanceof Integer)) {
/* 147 */             if (pName == null) {
/* 148 */               cstmt.setObject(pIndex, pInfos[0], 
/* 149 */                 ((Integer)pInfos[1]).intValue());continue;
/*     */             }
/* 151 */             cstmt.setObject(pName, pInfos[0], 
/* 152 */               ((Integer)pInfos[1]).intValue());
/* 153 */             continue;
/*     */           }
/*     */         }
/*     */         
/* 157 */         if (3 == pInfos.length) {
/* 158 */           if (pInfos[0] == null) {
/* 159 */             if (pName == null) {
/* 160 */               cstmt.setNull(pIndex, ((Integer)pInfos[1]).intValue(), 
/* 161 */                 (String)pInfos[2]);
/*     */             } else {
/* 163 */               cstmt.setNull(pName, ((Integer)pInfos[1]).intValue(), 
/* 164 */                 (String)pInfos[2]);
/*     */             }
/*     */             
/*     */           }
/* 168 */           else if (((pInfos[1] instanceof Integer)) && 
/* 169 */             ((pInfos[2] instanceof Integer))) {
/* 170 */             if (pName == null) {
/* 171 */               cstmt.setObject(pIndex, pInfos[0], 
/* 172 */                 ((Integer)pInfos[1]).intValue(), 
/* 173 */                 ((Integer)pInfos[2]).intValue());
/*     */             } else {
/* 175 */               cstmt.setObject(pName, pInfos[0], 
/* 176 */                 ((Integer)pInfos[1]).intValue(), 
/* 177 */                 ((Integer)pInfos[2]).intValue());
/*     */             }
/*     */           }
/*     */         }
/*     */       }
/*     */     }
/*     */   }
/*     */   
/*     */   public void readData(DmdbCachedRowSet_bs caller) throws SQLException {
/* 186 */     DmdbConnection_bs conn = caller.getConnectionInner();
/* 187 */     if (conn == null) {
/* 188 */       return;
/*     */     }
/* 190 */     DmdbCallableStatement_bs cstmt = prepareStatement(conn, caller);
/* 191 */     setParams(cstmt, caller.getParamsInner());
/*     */     
/* 193 */     DmdbResultSet_bs rs = (DmdbResultSet_bs)cstmt.executeQuery();
/* 194 */     caller.populate(rs);
/* 195 */     rs.close();
/*     */     
/* 197 */     cstmt.close();
/*     */     
/* 199 */     conn.commit();
/* 200 */     if (!caller.keepConnecting()) {
/* 201 */       conn.close();
/*     */     }
/*     */   }
/*     */ }


/* Location:              D:\Program Files\DBMS_20150813\jdbc\Dm7JdbcDriver17.jar!\dm\jdbc\rowset\DmdbCachedRowSetReaderInner.class
 * Java compiler version: 5 (49.0)
 * JD-Core Version:       0.7.1
 */